This application is related to the following U.S. patent applications: (1) Ser. No. 08/914,296 filed on Aug. 18, 1997, and entitled xe2x80x9cMethods and Apparatus For Compact Disc Automatic Startxe2x80x9d, and (2) Ser. No. 08/914,298, filed on Aug. 18, 1997, and entitled xe2x80x9cMethod and Apparatus for Subcode/Data Synchronization in a Compact Disc Systemxe2x80x9d. These applications are hereby incorporated by reference.
1. Field of the Invention
This invention relates generally to compact discs, and more particularly to efficient integrated circuit processing of sector components in high speed compact disc drives.
2. Description of the Related Art
Compact disc drives have become increasingly popular due to their ability to rapidly access large quantities of data as well as provide fine quality digital play-back. To meet the need for increased data transfer rates, compact disc xe2x80x9cCDxe2x80x9d hardware engineers have been designing CD drives that are able to transfer data at speeds that are many times the rotational speed of normal audio CD audio (e.g., 4xc3x97, 10xc3x97, 24xc3x97, . . . 50xc3x97. . . etc.). For example, when a CD contains normal audio, the processing and play-back of the audio data is performed at 1xc3x97 speeds. Accordingly, CD drives must be capable of operating at various speeds in order to appropriately process the data contained on a CD media, whether the CD media contains pure audio data or some other type of stored data.
Although there are many types of CD drives that provide different rotational speeds depending on the type of CD media being read, a new type of CD drive, which is capable of maintaining a constant high rotational speed irrespective of what the CD media has stored therein has recently been developed. The various advantages of such CD drives are discussed in greater detail in a co-pending U.S. Patent application entitled xe2x80x9cAn Improved Disc Drivexe2x80x9d, and having U.S. Ser. No. 08/917,792, which is incorporated by reference herein. Because the CD is now capable of rotating at a constant high speed, the CD drive must be capable of reading and processing the data stored on the CD sufficiently fast to avoid introducing delays.
A common technique for increasing processing speeds has been to incorporate faster microprocessors, however, even fast processors have found reading and processing the CD media being spun at ever increasing speeds a challenge. By way of example, basic CD drive tasks, such as xe2x80x9cseekingxe2x80x9d to a location on the CD media in order to start play-back, are becoming increasingly difficult. In some cases, the microprocessor that is in charge of seeking to a particular xe2x80x9cstartxe2x80x9d location on a CD media track has been found to be too slow to begin a play-back once the start location has been identified. That is, by the time the microprocessor determines that it has the correct start location, the CD media will have spun past its appropriate starting location. Many times, play-back may not start until a next sector is encountered.
FIGS. 1A through 1C illustrate, by way of background, techniques used to store data on a CD media 100. As is well known, the CD media 100 has a continuous track that spirals around the CD media 100, beginning at the inner region and ending at the outer edge. At the beginning of the track, a lead-in region typically contains a table of contents (TOC) that is used by the CD drive to ascertain where data recorded on the CD media 100 is located, in terms of minutes, seconds and frames (i.e., MSFs). As shown, the track of the CD media 100 is divided into many sectors 102, where each sector 102 contains 2352 bytes of data. The final sector 102 of the CD media 100 is then followed by a lead-out region, which signals the end of the CD media 100.
Besides the 2352 bytes of data, each sector also includes 98 subcode bytes, such that there are 98 bits of P-subcode, 98 bits of Q-subcode, 98 bits of R-subcode, 98 bits of S-subcode, 98 bits of T-subcode, 98 bits of U-subcode, 98 bits of V-subcode, and 98 bits of W-subcode. As is well known, each of these subcode bits may be used for a number of identification purposes, however, only the 98 bits of Q-subcode are used to ascertain the absolute subcode MSF of a particular sector 102. Of course, the Q-subcode is sometimes used for other processing and identification purposes as well.
FIG. 1B provides a closer examination of the typical contents of a sector that may be stored on a disc track. For example, each sector 102a-102n will typically contain a pre-gap region 104 that is typically used as a silent region. Generally, when the information stored on the disc is non-audio data, there is also a post-gap region (not shown), which may be silent or include some type of control information. Each sector 102a-102n also contains 98 xe2x80x9ceight-to-fourteen modulationxe2x80x9d (EFM) frames 106 that have both data and subcode components. As shown in FIG. 1C, each EFM frame 106 typically contains a SYNC field 120, a subcode field 122, a data field 124, an ECC (C1) field 126, a data field 128 and an ECC (C2) field. When an error in the data 124 or 128 is detected, a C1C2 Error Flag is triggered, thereby indicating that at least one of the data components 124 or 128 contain an error. In addition, because a sector 102 has 98 bytes of subcode, each EFM frame will contain 8 bits of subcode (i.e., a P-bit, a Q-bit, an R-bit, an S-bit, a T-bit, a U-bit, a V-bit, and a W-bit).
In operation, when a user wants to seek out to a particular subcode MSF on the CD media, a head actuator (not shown) moves an optical reading head to the radial position where the desired data is believed to be located. To identify the location, the optical reading head is required to sequentially read out one Q-bit at a time from a sector 102 until all 98 Q-bits have been read. Once all 98 Q-bits are read, the CD drive must perform microprocessor operations to determine whether those 98 Q-bits define a subcode MSF that is equal to the desired subcode MSF. Once the microprocessor determines that the subcode MSF values match, the CD drive must be quick enough to start the transfer of subcode data.
As mentioned earlier, as disc speeds continue to increase, the microprocessors that are assigned the task of processing the 98 bytes of subcode for each sector 102, will find it challenging, if not impossible, to begin the data transfer before the next sector is encountered. Referring to FIG. 1B, after all 98 bytes of subcode for sector 102a have been read by the CD drive, and the microprocessor performs the necessary operations to determine that sector 102a has the correct subcode MSF it was looking for (i.e., the found subcode MSF), the microprocessor is required to initiate the xe2x80x9cstartxe2x80x9d of a subcode data transfer. However, even the fastest of microprocessors will experience that processing and finding the correct subcode MSF, and triggering a start after the correct subcode MSF is actually found is difficult without introducing delays.
Typically, when the data stored on the CD media 100 is other than audio, the data component also has its own associated MSF. However, typical CD drives internally separate a sector 102 that has just been read, into a subcode component and a data component. Unfortunately, these components are often times released from a holding buffer memory with offsets. For example, if the CD drive receives a subcode component having a subcode MSF1 at time t1 and a data component having a data MSF1 at time t2, the subcode component will necessarily be released before the data component. Although they have the same MSF1, they are received by the holding buffer memory at different times (e.g., at t1 and t2), and therefore, an offset is necessarily introduced. Although the offset may be attributed to a number of factors, one reason for the offset is that the subcode or the data components were processed through the CD drive logic and microprocessor at different speeds.
In situations where the data stored in the CD media 100 is graphics related, many times graphics information may be coded directly into the subcode (e.g., using at least some of the R-W bits). Consequently, if the subcode component is released before the data component, the data that is designed to interact with the subcode graphics will not match up. This problem is sometimes further complicated when offsets of several frames are produced, which may introduced play-back errors or degrade the quality of the data being read.
In view of the foregoing, there is a need for a compact disc drive that is capable of detecting when the data and subcode components are received, and temporarily delaying transfers until the correct components are matched up.
Broadly speaking, the present invention fills these needs by providing a method and apparatus for managing the various components associated with a transfer from a CD media to a host, or from the host to the CD media in CD-R applications. In a further embodiment, the managing functions are simplified by including a plurality of counters that are in charge of counting the status of the various components being received by a buffer memory. Accordingly, the plurality of counters provide a method by which a block of information is not released to the host until its components are received by the buffer memory. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a disc drive system is disclosed. The disc drive system includes a digital signal processor for processing information sectors read from a CD media. The digital signal processor is configured to parse the information sectors into data frames and subcode frames. The system includes data auto-start unit for triggering a data transfer to a buffer memory when a desired data frame is detected, and a subcode auto-start unit for triggering a subcode transfer to the buffer memory when a desired subcode frame is detected. Preferably, the desired data frame and the desired subcode frame have a same MSF. The disc drive system further includes a buffer manager having a plurality of counters that are configured to track the number of data frames and the number of subcode frames being transferred to the buffer memory, and releasing a block including one of the data frames and one of the subcode frames when the counters indicate that the block is complete.
In another embodiment, a method for releasing data processed in a disc drive system is disclosed. The method includes processing information sectors read from a CD media to produce data frames and subcode frames, triggering a data transfer to a buffer memory when a desired data frame is detected, and triggering a subcode transfer to the buffer memory when a desired subcode frame is detected. The method further includes tracking the number of data frames and the subcode frames being transferred to the buffer memory, and releasing a block including one of the data frames and one of the subcode frames contained in the buffer memory, wherein the block has the same minute/second/frame parameter for the one data frame and the one subcode frame.
In yet a further embodiment, a disc drive apparatus is disclosed. The disc drive apparatus includes a signal processing means for processing information sectors read from a CD media. The signal processing means is configured to parse the information sectors into data frames and subcode frames. The apparatus includes a data auto-starting means for triggering a data transfer to a memory means when a desired data frame is detected, and subcode auto-starting means for triggering a subcode transfer to the memory means when a desired subcode frame is detected, such that the desired data frame and the desired subcode frame have a same MSF. The disc drive apparatus further includes a memory managing means having a plurality of counters that are configured to track the number of data frames and the subcode frames being transferred to the memory means, and releasing a block including at least one of the data frames and one of the subcode frames when the counters indicate that the block is complete.
These and other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.